home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 45.zip
/
BS1 part 45
/
Debut - Planet Simulation v1.05 (1990)(Pandora)(Disk 1 of 2)[cr SCX].7z
/
Debut - Planet Simulation v1.05 (1990)(Pandora)(Disk 1 of 2)[cr SCX].adf
/
TEXTINTRO.S
< prev
next >
Wrap
Text File
|
1990-09-17
|
11KB
|
580 lines
*************************************************
* A NEW SLIPSTREAM INTRO (C) 1990 MARC *
*************************************************
OPT D-,C-,O1+,O2+
*********************************
* A FEW HARWARE EQUATES *
*********************************
SECTION DEMO,CODE_C
CUSTOM EQU $DFF000
SPR0CTL EQU $142
COP2LCH EQU $84
IFND HARDWARE_CUSTOM_I
HARDWARE_CUSTOM_I SET 1
bltddat EQU $000
dmaconr EQU $002
vposr EQU $004
vhposr EQU $006
dskdatr EQU $008
joy0dat EQU $00A
joy1dat EQU $00C
clxdat EQU $00E
adkconr EQU $010
pot0dat EQU $012
pot1dat EQU $014
potinp EQU $016
serdatr EQU $018
dskbytr EQU $01A
intenar EQU $01C
intreqr EQU $01E
dskpt EQU $020
dsklen EQU $024
dskdat EQU $026
refptr EQU $028
vposw EQU $02A
vhposw EQU $02C
copcon EQU $02E
serdat EQU $030
serper EQU $032
potgo EQU $034
joytest EQU $036
strequ EQU $038
strvbl EQU $03A
strhor EQU $03C
strlong EQU $03E
bltcon0 EQU $040
bltcon1 EQU $042
bltafwm EQU $044
bltalwm EQU $046
bltcpt EQU $048
bltbpt EQU $04C
bltapt EQU $050
bltdpt EQU $054
bltsize EQU $058
bltcmod EQU $060
bltbmod EQU $062
bltamod EQU $064
bltdmod EQU $066
bltcdat EQU $070
bltbdat EQU $072
bltadat EQU $074
dsksync EQU $07E
cop1lc EQU $080
cop2lc EQU $084
copjmp1 EQU $088
copjmp2 EQU $08A
;copins EQU $08C
diwstrt EQU $08E
diwstop EQU $090
ddfstrt EQU $092
ddfstop EQU $094
dmacon EQU $096
clxcon EQU $098
intena EQU $09A
intreq EQU $09C
adkcon EQU $09E
aud EQU $0A0
aud0 EQU $0A0
aud1 EQU $0B0
aud2 EQU $0C0
aud3 EQU $0D0
ac_ptr EQU $00
ac_len EQU $04
ac_per EQU $06
ac_vol EQU $08
ac_dat EQU $0A
ac_SIZEOF EQU $10
bplpt EQU $0E0
bplcon0 EQU $100
bplcon1 EQU $102
bplcon2 EQU $104
bpl1mod EQU $108
bpl2mod EQU $10A
bpldat EQU $110
sprpt EQU $120
spr EQU $140
sd_pos EQU $00
sd_ctl EQU $02
sd_dataa EQU $04
sd_datab EQU $08
color EQU $180
ENDC
*************************************************
* INITIALISE SUPERVISOR MODE *
*************************************************
GOPROG:
; MOVE.W #32,D0
; LEA TIDY,A0
; BSR FADE1COL
MOVEM.L D0-D7/A0-A6,-(SP)
MOVE.L #LOGO+(SCRWIDTH*1)+3,PRPOINT
CLR.L $0
MOVE.L #PROG,$00000080
TRAP #0
MOVEM.L (SP)+,D0-D7/A0-A6
RTS
*********************************
* PROGRAM STARTS HERE *
*********************************
PROG
LEA CUSTOM,A5
MOVE.W SR,STRSTORE
MOVE.W DMACONR(A5),DMASTORE
MOVE.W INTENAR(A5),INTSTORE
MOVE.W #$2000,SR
MOVE.W #$7FFF,DMACON(A5)
MOVE.W #$7FFF,INTENA(A5)
CLR.W SPR0CTL(A5)
MOVE.W #$0020,INTREQ(A5)
MOVE.L #NEWCOPPER,COP2LCH(A5)
*********************************
* MAIN LOOP SETUP ROUTINES *
*********************************
BSR PICSET
CLR.W COPJMP2(A5)
MOVE.W #$87C0,DMACON(A5)
BSET #1,$BFE001
BSR SETSTART
*********************************
* MAIN LOOP *
*********************************
VBLANK
MOVE.W $001E(A5),D0
AND.W #$0020,D0
BEQ.S VBLANK
BSR KEYTEST
TST.L D0
BEQ.S PRESSED
CMP.L #GAMES,D0
BLT.S PRESSED
MOVE.W #$0020,$009C(A5)
BTST #6,$BFE001
BEQ.S PRESSED
BRA.S VBLANK
*********************************
* EXIT BACK TO CLI *
*********************************
PRESSED
MOVE.W D0,0
BSR CLEAR
CLR.W PAPER
LEA TIDY(PC),A0
BSR FADE1COL
MOVE.W #32,D0
LEA COLS,A0
BSR FADE
MOVE.W #$7FFF,DMACON(A5)
MOVE.W #$7FFF,INTENA(A5)
LEA CUSTOM,A5
MOVE.W #$2C81,$008E(A5)
MOVE.W #$2CC1,$0090(A5)
MOVE.W #$0038,$0092(A5)
MOVE.W #$00D0,$0094(A5)
CLR.W $010A(A5)
CLR.W $0108(A5)
CLR.W COPJMP1(A5)
OR.W #$8000,DMASTORE
OR.W #$8000,INTSTORE
MOVE.W DMASTORE(PC),DMACON(A5)
MOVE.W INTSTORE(PC),INTENA(A5)
MOVE.W STRSTORE(PC),SR
RTE
*************************************************
* TRAINER PATCH *
*************************************************
TRAIN TST.B $0
BNE.S TNOSUB
SUB.W #1,D0
TNOSUB TST.W D0
RTS
TRAINEND
*************************************************
* DMACON AND INTERUPT SAVE *
*************************************************
INTSTORE DC.W 0
DMASTORE DC.W 0
STRSTORE DC.W 0
*************************************************
* ENTER PICTURE POINTERS INTO COPPER *
*************************************************
PICSET
MOVE.L #LOGO,D0
MOVE.W D0,PSL1L
SWAP D0
MOVE.W D0,PSL1H
MOVE.L #LOGO+(48*256),D0
MOVE.W D0,PSL2L
SWAP D0
MOVE.W D0,PSL2H
MOVE.L #LOGO+(48*(2*256)),D0
MOVE.W D0,PSL3L
SWAP D0
MOVE.W D0,PSL3H
MOVE.L #LOGO+(48*(3*256)),D0
MOVE.W D0,PSL4L
SWAP D0
MOVE.W D0,PSL4H
MOVE.L #LOGO+(48*(4*256)),D0
MOVE.W D0,PSL5L
SWAP D0
MOVE.W D0,PSL5H
RTS
*************************************************
* FADE ROUTINE A0 COPPER D0 NO OF COLS *
*************************************************
FADE1COL
MOVE.L #15,D0
FADE1LOOP
MOVE.W (A0),D2
BSR DIVIDE
DBRA D0,FADE1LOOP
RTS
FADE
MOVE.W D0,NUMCOLS
MOVE.L #15,D7
ADD.L #6,A0
MOVE.L A0,A1
FLOOP MOVE.W NUMCOLS(PC),D0
SUB.L #2,D0
move.l #$9fff,d1
delay DBRA D1,delay
FADECOL
MOVE.W (A0),D2
BSR DIVIDE
ADD.L #4,A0
DBRA D0,FADECOL
MOVE.L A1,A0
DBRA D7,FLOOP
RTS
NUMCOLS DC.W 0
DIVIDE
TST.W D2
BEQ.S EXIT
CLR.L D3
CLR.L D4
CLR.L D5
CLR.L D6
MOVE.W D2,D3
AND.W #%0000000000001111,D3
TST.B D3
BEQ.S NEXT
SUBQ.B #1,D3
NEXT
MOVE.W D2,D4
AND.W #%0000000011110000,D4
ASR.W #$4,D4
TST.B D4
BEQ.S NEXT2
SUBQ.B #1,D4
NEXT2
ASL.W #$4,D4
MOVE.W D2,D5
AND.W #%0000111100000000,D5
ASR.W #$8,D5
TST.B D5
BEQ.S NEXT3
SUBQ.B #1,D5
NEXT3
ASL.W #$8,D5
OR.W D3,D6
OR.W D4,D6
OR.W D5,D6
MOVE.W D6,(A0)
EXIT RTS
EXIT2 MOVE.W #0,(A0)
RTS
*************************************************
* MESSAGES FOR TEXT !!!!!!!!!!! *
*************************************************
GREET
DC.B " D E B U T "
DC.B " THE PLANET SIMULATOR "
DC.B " "
DC.B " CRACKED BY N.O.M.A.D OF SCOOPEX "
DC.B " "
DC.B " DUE TO THE COMPLEXITY OF THIS GAME, "
DC.B " SOME CRACKING ERRORS MAY OCCUR. "
DC.B " "
DC.B " NO EXTERNAL DRIVES OR MEMORY "
DC.B " LEAVE BOTH DISKS WRITE ENABLED "
DC.B " "
DC.B " GREETS TO ALL WHO DESERVE THEM "
DC.B " "
DC.B "PRESS LEFT MOUSE BUTTON TO EXIT TO GAME!"
GREETEND
EVEN
*************************************************
* MESSAGES FOR TEXT !!!!!!!!!!! *
*************************************************
LIST
DC.B " ANOTHER COMPACT "
DC.B " "
DC.B " F1 RORKES DRIFT F1 "
DC.B " F2 STORM ACROSS EUROPE F2 "
DC.B " "
DC.B " RORKES DRIFT WAS CRACKED BY ORACLE "
DC.B " STORM ACROSS EUROPE BY PARANIOMIA. "
DC.B " "
DC.B " COMPILATION AND CODE BY "
DC.B " N . O . M . A . D "
DC.B " "
DC.B " PRESS RIGHT MOUSE FOR GREETS SCREEN !! "
LISTEND
EVEN
GAMES EQU 2
*************************************************
* PRINT GREETS AND MESSAGES *
*************************************************
GREETS
BTST #2,$16(A5)
BEQ.S GREETS
BSR.S CLEAR
SETSTART
MOVE.L #LOGO+(HEIGHT)+(SCRWIDTH*1)+3,PRPOINT
MOVE.L PRPOINT(PC),A4
LEA GREET(PC),A3
LEA GREETEND(PC),A6
BRA.S RESET
HEIGHT EQU 48*97
*************************************************
* CLEAR TEXT SCREEN *
*************************************************
CLEAR
MOVEQ.L #7,D0
HERE
LEA (LOGO+(HEIGHT))(PC),A0
CLEAR2
MOVE.B (A0),D1
LSR.B #1,D1
MOVE.B D1,(A0)+
CMP.L #LOGO+(48*230),A0
BNE.S CLEAR2
DBRA D0,HERE
RTS
*************************************************
* CLEAR LOGO SCREEN *
*************************************************
LCLEAR
MOVEQ.L #7,D0
LHERE
LEA LOGO(PC),A0
LCLEAR2
MOVE.B (A0),D1
LSR.B #1,D1
MOVE.B D1,(A0)+
CMP.L #LOGOEND,A0
BNE.S LCLEAR2
DBRA D0,LHERE
RTS
*************************************************
* GET CHARACTER FROM MESSAGES AND PRINT *
*************************************************
SETPRINT
BTST #6,$BFE001
BEQ.S SETPRINT
BSR.S CLEAR
CLR.W PAPER
MOVE.L #LOGO+(HEIGHT)+(SCRWIDTH*1)+3,PRPOINT
MOVE.L PRPOINT(PC),A4
LEA LIST(PC),A3
LEA LISTEND(PC),A6
RESET
CLR.W PAPER
MOVE.L #39,D4
PRLOOP MOVEQ.L #0,D0
MOVE.B (A3)+,D0
BSR.S FINDCHAR
DBRA D4,PRLOOP
ADD.L #(SCRWIDTH*10),A4
MOVE.L A4,PRPOINT
CMP.L A6,A3
BNE.S RESET
UP
ADD.W #$0122,PAPER
MOVE.L #$FFFF,D0
ITSELF DBRA D0,ITSELF
CMP.W #$07EE,PAPER
BNE.S UP
MOVE.W #$09FD,PAPER
RTS
*************************************************
* FIND CHARACTER AND PRINT ONTO SCREEN *
*************************************************
FINDCHAR
SUB.L #32,D0
TST.L D0
BEQ.S SPACE
ASL.L #3,D0
SPACE
LEA CHARS,A1
ADD.L D0,A1
MOVE.L PRPOINT(PC),A0
BSR.S PRINT
MOVE.L A0,PRPOINT
RTS
SCRWIDTH EQU 48
PRPOINT DC.L LOGO+6
*************************************************
* PRINT ROUTINE (A0 DEST A1 CHARBIN) *
*************************************************
PRINT
MOVE.L A0,A2
MOVE.L #7,D0
TRAN
MOVE.B (A1)+,(A2)
ADD.L #SCRWIDTH,A2
DBRA D0,TRAN
ADD.L #1,A0
RTS
*************************************************
* GETKEY VALUE AND RETURN IN D0 *
*************************************************
KEYTEST
MOVE.W $1E(A5),D1
BTST #3,D1
BEQ.S NOWAY
MOVEQ.L #0,D0
MOVE.B $BFEC01,D0
ORI.B #$40,$BFEE01
NOT.B D0
ROR.B #1,D0
SUB.W #$50,D0
MOVE.W #$600,D1
ITSELF2 DBRA D1,ITSELF2
ANDI.B #$BF,$BFEE01
NOWAY RTS
*************************************************
* COPPER LIST *
*************************************************
NEWCOPPER
DC.L $01000000
COLS
dc.w $0180,$0000,$0182,$0fff,$0184,$0bcf,$0186,$077f
dc.w $0188,$052f,$018a,$020a,$018c,$0106,$018e,$0004
dc.w $0190,$0303,$0192,$0fdd,$0194,$0fbb,$0196,$0f88
dc.w $0198,$0f00,$019a,$0b00,$019c,$0800,$019e,$0500
dc.w $01a0,$0300,$01a2,$0fff,$01a4,$0bcf,$01a6,$077f
dc.w $01a8,$052f,$01aa,$020a,$01ac,$0106,$01ae,$0004
dc.w $01b0,$0cfe,$01b2,$09fd,$01b4,$00fb,$01b6,$00da
dc.w $01b8,$00a8,$01ba,$0087,$01bc,$0055,$01be,$0033
DC.L $008E2081,$009040C8,$00920028,$009400D8
DC.W $00E0
PSL1H: DC.W $0003
DC.W $00E2
PSL1L: DC.W $7000
DC.W $00E4
PSL2H: DC.W $0003
DC.W $00E6
PSL2L: DC.W $7000
DC.W $00E8
PSL3H: DC.W $0003
DC.W $00EA
PSL3L: DC.W $7000
DC.W $00EC
PSL4H: DC.W $0003
DC.W $00EE
PSL4L: DC.W $7000
DC.W $00F0
PSL5H: DC.W $0003
DC.W $00F2
PSL5L: DC.W $7000
DC.L $01080002,$010A0002
DC.L $010200FF
DC.L $2801FFFE,$01005200
DC.L $8801FFFE
DC.W $0182
PAPER
DC.W $09FD,$0102,$0022
DC.L $FFDFFFFE
DC.L $1001FFFE
DC.W $0182
TIDY DC.W $FFF,$0102,$00AA
DC.L $2801FFFE,$01000000,$01800000
DC.L $FFFFFFFE
;SCROLLCOLS DS.B 180*16
EVEN
;PAPER DC.W $FFF
LOGO INCBIN df1:COMP.BIN
LOGOEND
EVEN
CHARS
INCBIN DF0:MADCHARS
EVEN